                             2024.12
                       Released 2024-12-31

Squeezing in one last release before the new year!  The main "new feature" in
this version is the converter plugin system.  When downloading an Ugoira,
pixiv_down uses an external library to generate the GIF file.  The libraries
have previously been restricted to using GraphicsMagick or ImageIO (depending
on your OS).

This version introduces a shared API that can be used to communicate between
an external library and pixiv_down.  This means that you can create your own
converter plugin, using your language and library of choice, to create GIFs!
(So long as your language can export functions using C linkage!)

The default converters are still GraphicsMagick and ImageIO, but I have
also developed a converter that uses libvips (https://www.libvips.org).  I
would recommend using this on macOS, as it seems to generate better quality
GIFs.

       https://codeberg.org/supercell/pd_vips_converter



                             2024.10
                       Released 2024-10-27

Nothing too fancy in this release, the main difference is that the 'daily'
command no longer requires an end date (--end) after you have run it for the
first time. It will store the date you run the command and use it as the end
date for the next run.

The 'following' command has seen a couple of changes, such as better progress
reporting when retrieving the accounts, but it will also now enforce either the
'--public' or '--private' flag.  This was always been the case, but if you ran
the 'following' command with the '--skip' argument, it would start the download
as if the '--public' flag had been specified.

The last notable change is in the build systems.  I'm going to remove the
autotools-based build system (./configure && make) in the next release.  The
reason for this is that it doesn't support D very well, and improving it to
work "better" (not good, but better) would require more work than
I'm willing to put in.

There are two new build systems that can be used: meson and scons.  You can
read more about how to use them in the INSTALL file.



                             2024.09
                       Released 2024-09-24

This version introduces a new '-f, --force' flag for both the 'artwork' and
'daily' commands.  This new flag tells pixiv_down to overwrite any previously
existing download of the work.  It will ignore any partial downloads for the
work as well.

The 'bookmarked' command also received a new options as well.
'--remove-from-file' option allows you to specify a file that contains a list
of IDs to remove from your bookmark list.  Usually, this is the file that is
created when running the 'bookmarked' command.

A new configuration option was added for the '[bookmarked]' section:
'always_remove_invalid'.  An example of what this looks like is shown in the
pixiv_down-bookmarked(5) man page.

There have been some changes around the build system again.  Instead of the
configure script being a Ruby script, it is now normal shell script generated
by autoconf.  This change was driven by a want to build pixiv_down using the
GNU Guix package manager, which also involved fixing issues when building with
D 2.076.1.

There have also been some bug fixes, namely invalid image files being
downloaded (due to a recent change with pixiv).



                             2024.07
                       Released 2024-07-21

This version doesn't introduce any new features, however, it does fix a couple
of bugs that you may have experienced, such as an endless loop when running the
'daily' command, invalid GIFs being generated, and the '--skip-novel' flag not
working when running the 'artist' command.

The only other notable change is that the message shown when downloading using
the 'artist' command has been adjusted for instances when there are no works to
download.



                             2024.05
                       Released 2024-05-31

A couple of new command line options have been added:

  --output-directory and --config-file

These two new flags provide a way to override options that you've set in your
configuration file for this command.

A prompt has also been added when running the 'compact' command and the account
ID no longer exists (probably because it's been deleted).  The prompt choices
are based off of currently existing directory names, so you can choose any of
them.

Something that you hopefully shouldn't notice when running pixiv_down, is that
there has been a removal of a dependency that was used for creating GIFs.
Since the beginning, pixiv_down has used a library called GraphicsMagick, which
is an *awesome* program and library that allows you to do lots of cool stuff to
your images.  To make use of GraphicsMagick, pixiv_down was using a library I
developed to access the GraphicsMagick library from the D programming language,
this was called 'magickd'.

I have removed the 'magickd' dependency, and instead make direct use of the
GraphicsMagick shared library that is installed on your machine when installing
GraphicsMagick.  Again, this shouldn't change anything for you, but reduces my
work :-)



                             2024.04
                       Released 2024-04-20

macOS is now supported!

In previous versions, there were errors preventing pixiv_down from compiling on
macOS.  These errors have been addressed by implementing the missing features.

There is also a new 'bookmarked' command that allows you to download all the
works that you have bookmarked.  Simply running 'pixiv_down bookmarked' and all
your "public" bookmarks will be downloaded.  You can add the '--private' flag
which will download all of your "private" bookmarks.  For more info, run
'pixiv_down help bookmarked'.

pixiv_down now reads a new environment variable: PIXIV_DOWN_SESSID.  This will
determine your session ID when running pixiv_down.  It takes precedence over
your session ID set by 'pixiv_down reset'.

The default file name for your configuration settings has changed from
'pixiv_down.conf' to 'settings.conf'.  The previous name is still supported.

Documentation has also seen an improvement.  There are now man pages for each
of the commands that pixiv_down provides.  You can run 'man pixiv_down 1' to
see the general usage of pixiv_down, along with all the sub-command page names
as well.  There is also a man page for the configuration file, which can be
read by calling 'man pixiv_down.conf 5'.

Finally, there has been some changes to the build system.  If you use dub, then
there are no changes for you.

There is a new 'configure' script, written in Ruby (yes!), that handles any
platform-specific quirks when building pixiv_down using 'make'.  All you should
need to do is run './configure' and a Makefile will be created for your
operating system.

This new configure script supports a few environment variables, that will
influence the output:

  DC:
    The D compiler to use (on macOS, only dmd is supported).

  DFLAGS:
    Specify any custom flags to be passed to the D compiler

  LDFLAGS:
    Specify any custom linker flags to be passed to the linker.
    For example: -L/usr/local/lib

  LIBS:
    Specify any custom libraries to be passed to the linker.
    For example: -lGraphicsMagick



                             2024.02
                       Released 2024-02-03

As pixiv_down is starting to mature as a program, some of the default options
and behaviours have been changed from the initial version.  In addition, some
of the option names have been changed to better express their intent.  Please
read the summary in each section below to understand what has changed.

Generally speaking, all of the help messages have been re-written to be more
helpful and provide examples.  When downloading works, they progress is shown
by a progress bar.  Any works that get interrupted when downloading can be
resumed by running the same command (in other words, partial downloading).
You can now reset your "PHPSESSID" token via the command-line with the 'reset'
command.  And finally, you can now download novels.

Originally, the 'artist' command only downloaded illustrations by default, you
had to specify manga with the '--type' option resulting in two separate runs.
This has been changed, now pixiv_down will download illustrations, manga, and
novels by default.  (The '--type' option still exists to limit which work type
to download.)  You can also specify multiple artist IDs at once to download
multiple artists in a single run.  When downloading a single artist, you can
also choose to skip any number of illustrations, manga, or novels by using the
'--skip-illust', '--skip-manga', and '--skip-novel' options.

The 'artwork' command has received a new option: '--group-errors'.  When used,
it will collect any errors that occur when downloading multiple artworks, and
print them all out at once at the end.  The default behaviour of 'artwork' is
to print out errors after each artwork.

The 'daily' command has received a new option: '--sfw-only'.  When used, only
content that is not marked as R-18 is downloaded.

The 'following' command has received a couple of changes.  First, you must now
specify either '--public' or '--private' when running.  This tells pixiv_down
which list you want to download from.  Previously, not specifying '--private'
would download the accounts you publicly follow.  The '-o, --offset' option has
been renamed to '-s, --skip' as this might make it easier to understand (skip
the first X number of works).  Finally, the '-l, --limit' option has been
removed.  This may return, but with a different meaning.

There is a new command called 'compact'.  When downloading works, pixiv_down
creates a directory for an account ID and display name pair
(for example, 0000000_displayName), making it easier to navigate all the
artists you've downloaded from.  This works fine, until the account owner
changes their display name, as this causes pixiv_down to create another
directory.

The 'compact' command allows you to compact all of those "duplicate"
directories in to one directory per-account.  There are two options for this
command:

  * '-i, --interactive' which allows you to choose the name to use for the new
    directory.
  * '-n, --dry-run' which will print out all of the changed that *would* happen
    but doesn't actually make those changes.  Your files remain untouched.

In line with the 'compact' command, there is another new command: 'prune'.
When you stop following an account on pixiv, pixiv_down doesn't know that.  All
the directories that exist for the account will remain on disk, using space.
The 'prune' command allows you to sort through all the accounts you don't
follow, or have been deleted, and prompt you to remove them.  The options for
this command are:

  * '-q, --quiet' which will remove the directories without prompting.
  * '-n, --dry-run' which will list all the directories without actually
    removing them.

Finally, there is the new 'novel' command.  The 'novel' command allows you to
download novels by using their ID.  There is only one flag for this command,
'--group-errors', which causes pixiv_down to collect all the errors that
occur when downloading novels, and print them out at the end.  The default
behaviour is to print errors as they occur.
